import { useCssVar } from "@vueuse/core";
import type { NProgressOptions } from "nprogress";
import NProgress from "nprogress";
import "nprogress/nprogress.css";

const primaryColor = useCssVar("--el-color-primary", document.documentElement);

export const useNProgress = () => {
    NProgress.configure({ showSpinner: false } as NProgressOptions);

    const initColor = async () => {
        await nextTick();
        const bar = document.getElementById("nprogress")?.getElementsByClassName("bar")[0] as ElRef;
        if (bar) {
            bar.style.background = unref(primaryColor.value);
        }
    };

    initColor();

    const start = () => {
        NProgress.start();
    };

    const done = () => {
        NProgress.done();
    };

    return {
        start,
        done
    };
};
